package com.smile.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.smile.commons.tree.TreeNode;
import com.smile.model.dto.request.AddOrganizationRequestDTO;
import com.smile.model.dto.request.EditOrganizationRequestDTO;
import com.smile.model.dto.request.GetOrganizationListRequestDTO;
import com.smile.model.dto.request.GetOrganizationsByUserIdRequestDTO;
import com.smile.model.response.response.GetOrganizationByIdResponseDTO;
import com.smile.model.response.response.GetOrganizationByIdsResponseDTO;
import com.smile.model.response.response.GetOrganizationByUserIdResponseDTO;
import com.smile.model.response.response.GetOrganizationListResponseDTO;

import java.util.List;
import java.util.Map;

public interface OrganizationService {

    Boolean addOrganization(AddOrganizationRequestDTO addOrganizationRequestDTO);

    Page<GetOrganizationListResponseDTO> getOrganizationList(GetOrganizationListRequestDTO getOrganizationListRequestDTO);

    List<GetOrganizationListResponseDTO> getOrganizationList1(GetOrganizationListRequestDTO getOrganizationListRequestDTO);

    /**
     * 获取无人机设备列表
     * @param params 参数
     * @return 返回无人机设备列表信息
     */
    List<GetOrganizationListResponseDTO> getDeviceList(GetOrganizationListRequestDTO params);

    GetOrganizationByIdResponseDTO getOrganizationById(Long id);

    Boolean editOrganization(EditOrganizationRequestDTO editOrganizationRequestDTO);

    Boolean deleteOrganization(Long id);

    List<GetOrganizationByUserIdResponseDTO> organizationTree(GetOrganizationsByUserIdRequestDTO getOrganizationListRequestDTO);

    Map<Long, GetOrganizationByIdsResponseDTO> getOrganizationByIds(List<Long> ids);
}
